package com.twetec.cms.service.system;

import com.baomidou.mybatisplus.extension.service.IService;
import com.twetec.cms.model.po.system.CmsMenuPO;
import com.twetec.cms.model.vo.website.CmsMenuPermissionListVO;

import java.util.ArrayList;
import java.util.List;

/**
 * @Author: zhaichangzheng
 * @Date: 2022/2/8 14:40 （日期和时间）
 */
public interface CmsMenuService extends IService<CmsMenuPO> {

    /**
     * 添加站点的菜单权限
     * @param siteId
     * @param siteName
     * @return
     */
    ArrayList<CmsMenuPO> addSitePermission(Long siteId, String siteName, Long userId);

    /**
     * 回收站点的菜单权限
     * @param siteIdList
     * @return
     */
    boolean removeSitePermission(ArrayList<Long> siteIdList);

    /**
     * 恢复站点的菜单权限
     * @param siteIdList
     * @return
     */
    boolean recoverySitePermission(ArrayList<Long> siteIdList);

    /**
     * 添加栏目的菜单权限
     * @param columnId
     * @param columnName
     * @param siteId
     * @return
     */
    ArrayList<CmsMenuPO> addColumnPermission(Long columnId, String columnName, Long siteId, Long parentId, String columnXpath, Long userId);

    /**
     * 回收栏目的菜单权限
     * @param columnIdList
     * @return
     */
    boolean removeColumnPermission(ArrayList<Long> columnIdList);

    /**
     * 获取菜单权限树
     * @return
     */
    CmsMenuPermissionListVO permissionTree();

    /**
     * 获取多个角色的所有权限
     * @param roleList
     * @return
     */
    List<CmsMenuPO> getAllRolePermission(ArrayList<Long> roleList, String type);

}
